.class public final Lnbisdk/ah;
.super Ljava/lang/Object;


# static fields
.field private static ap:[D

.field private static aq:[D

.field private static ar:[D

.field private static as:[D

.field private static at:[D

.field private static au:[D


# direct methods
.method static constructor <clinit>()V
    .locals 3

    const/4 v2, 0x4

    const/4 v1, 0x2

    new-array v0, v2, [D

    fill-array-data v0, :array_0

    sput-object v0, Lnbisdk/ah;->ap:[D

    new-array v0, v2, [D

    fill-array-data v0, :array_1

    sput-object v0, Lnbisdk/ah;->aq:[D

    const/16 v0, 0xb

    new-array v0, v0, [D

    fill-array-data v0, :array_2

    sput-object v0, Lnbisdk/ah;->ar:[D

    new-array v0, v1, [D

    fill-array-data v0, :array_3

    sput-object v0, Lnbisdk/ah;->as:[D

    new-array v0, v1, [D

    fill-array-data v0, :array_4

    sput-object v0, Lnbisdk/ah;->at:[D

    new-array v0, v1, [D

    fill-array-data v0, :array_5

    sput-object v0, Lnbisdk/ah;->au:[D

    return-void

    nop

    :array_0
    .array-data 0x8
        0x4ft 0xbbt 0x61t 0x5t 0x67t 0xact 0xddt 0x3ft
        0x18t 0x2dt 0x44t 0x54t 0xfbt 0x21t 0xe9t 0x3ft
        0x9bt 0xf6t 0x81t 0xd2t 0xbt 0x73t 0xeft 0x3ft
        0x18t 0x2dt 0x44t 0x54t 0xfbt 0x21t 0xf9t 0x3ft
    .end array-data

    :array_1
    .array-data 0x8
        0xe2t 0x65t 0x2ft 0x22t 0x7ft 0x2bt 0x7at 0x3ct
        0x7t 0x5ct 0x14t 0x33t 0x26t 0xa6t 0x81t 0x3ct
        0xbdt 0xcbt 0xf0t 0x7at 0x88t 0x7t 0x70t 0x3ct
        0x7t 0x5ct 0x14t 0x33t 0x26t 0xa6t 0x91t 0x3ct
    .end array-data

    :array_2
    .array-data 0x8
        0xdt 0x55t 0x55t 0x55t 0x55t 0x55t 0xd5t 0x3ft
        0xc4t 0xebt 0x98t 0x99t 0x99t 0x99t 0xc9t 0xbft
        0xfft 0x83t 0x0t 0x92t 0x24t 0x49t 0xc2t 0x3ft
        0x71t 0x16t 0x23t 0xfet 0xc6t 0x71t 0xbct 0xbft
        0x6et 0x20t 0x4ct 0xc5t 0xcdt 0x45t 0xb7t 0x3ft
        0x6dt 0x9at 0x74t 0xaft 0xf2t 0xb0t 0xb3t 0xbft
        0x51t 0x3dt 0xd0t 0xa0t 0x66t 0xdt 0xb1t 0x3ft
        0x9at 0xfdt 0xdet 0x52t 0x2dt 0xdet 0xadt 0xbft
        0xebt 0xdt 0x76t 0x24t 0x4bt 0x7bt 0xa9t 0x3ft
        0x2ft 0x6ct 0x6at 0x2ct 0x44t 0xb4t 0xa2t 0xbft
        0x11t 0xdat 0x22t 0xe3t 0x3at 0xadt 0x90t 0x3ft
    .end array-data

    :array_3
    .array-data 0x8
        0x0t 0x0t 0x0t 0x0t 0x0t 0x0t 0xe0t 0x3ft
        0x0t 0x0t 0x0t 0x0t 0x0t 0x0t 0xe0t 0xbft
    .end array-data

    :array_4
    .array-data 0x8
        0x0t 0x0t 0xe0t 0xfet 0x42t 0x2et 0xe6t 0x3ft
        0x0t 0x0t 0xe0t 0xfet 0x42t 0x2et 0xe6t 0xbft
    .end array-data

    :array_5
    .array-data 0x8
        0x76t 0x3ct 0x79t 0x35t 0xeft 0x39t 0xeat 0x3dt
        0x76t 0x3ct 0x79t 0x35t 0xeft 0x39t 0xeat 0xbdt
    .end array-data
.end method

.method private constructor <init>()V
    .locals 0

    invoke-direct {p0}, Ljava/lang/Object;-><init>()V

    return-void
.end method

.method private static a(D)J
    .locals 3

    invoke-static {p0, p1}, Ljava/lang/Double;->doubleToLongBits(D)J

    move-result-wide v0

    const/16 v2, 0x20

    shr-long/2addr v0, v2

    return-wide v0
.end method

.method public static a([BI)S
    .locals 4

    const/4 v0, 0x0

    add-int/lit8 v1, p1, 0x2

    move v2, v0

    move v0, p1

    :goto_0
    if-ge v0, v1, :cond_0

    shl-int/lit8 v2, v2, 0x8

    aget-byte v3, p0, v0

    and-int/lit16 v3, v3, 0xff

    or-int/2addr v2, v3

    add-int/lit8 v0, v0, 0x1

    goto :goto_0

    :cond_0
    int-to-short v0, v2

    return v0
.end method

.method public static a(I[BI)V
    .locals 3

    add-int/lit8 v0, p2, 0x3

    move v1, p0

    :goto_0
    if-lt v0, p2, :cond_0

    int-to-byte v2, v1

    aput-byte v2, p1, v0

    ushr-int/lit8 v1, v1, 0x8

    add-int/lit8 v0, v0, -0x1

    goto :goto_0

    :cond_0
    return-void
.end method

.method public static a(S[BI)V
    .locals 3

    add-int/lit8 v0, p2, 0x1

    move v1, p0

    :goto_0
    if-lt v0, p2, :cond_0

    int-to-byte v2, v1

    aput-byte v2, p1, v0

    ushr-int/lit8 v1, v1, 0x8

    int-to-short v1, v1

    add-int/lit8 v0, v0, -0x1

    goto :goto_0

    :cond_0
    return-void
.end method

.method public static atan(D)D
    .locals 23

    invoke-static/range {p0 .. p1}, Lnbisdk/ah;->a(D)J

    move-result-wide v2

    const-wide/32 v4, 0x7fffffff

    and-long/2addr v4, v2

    const-wide/32 v6, 0x44100000

    cmp-long v6, v4, v6

    if-ltz v6, :cond_4

    invoke-static/range {p0 .. p1}, Lnbisdk/ah;->b(D)J

    move-result-wide v6

    const-wide/32 v8, 0x7ff00000

    cmp-long v8, v4, v8

    if-gtz v8, :cond_0

    const-wide/32 v8, 0x7ff00000

    cmp-long v4, v4, v8

    if-nez v4, :cond_2

    const-wide/16 v4, 0x0

    cmp-long v4, v6, v4

    if-eqz v4, :cond_2

    :cond_0
    add-double p0, p0, p0

    :cond_1
    :goto_0
    return-wide p0

    :cond_2
    const-wide/16 p0, 0x0

    cmp-long p0, v2, p0

    if-lez p0, :cond_3

    sget-object p0, Lnbisdk/ah;->ap:[D

    const/16 p1, 0x3

    aget-wide p0, p0, p1

    sget-object v2, Lnbisdk/ah;->aq:[D

    const/4 v3, 0x3

    aget-wide v2, v2, v3

    add-double p0, p0, v2

    goto :goto_0

    :cond_3
    sget-object p0, Lnbisdk/ah;->ap:[D

    const/16 p1, 0x3

    aget-wide p0, p0, p1

    move-wide/from16 v0, p0

    neg-double v0, v0

    move-wide/from16 p0, v0

    sget-object v2, Lnbisdk/ah;->aq:[D

    const/4 v3, 0x3

    aget-wide v2, v2, v3

    sub-double p0, p0, v2

    goto :goto_0

    :cond_4
    const-wide/32 v6, 0x3fdc0000

    cmp-long v6, v4, v6

    if-gez v6, :cond_6

    const-wide/32 v6, 0x3e200000

    cmp-long v4, v4, v6

    if-gez v4, :cond_5

    const-wide v4, 0x7e37e43c8800759cL

    add-double v4, v4, p0

    const-wide/high16 v6, 0x3ff0

    cmpl-double v4, v4, v6

    if-gtz v4, :cond_1

    :cond_5
    const/4 v4, -0x1

    move/from16 v22, v4

    move-wide/from16 v4, p0

    move/from16 p0, v22

    :goto_1
    mul-double v6, v4, v4

    mul-double v8, v6, v6

    sget-object p1, Lnbisdk/ah;->ar:[D

    const/4 v10, 0x0

    aget-wide v10, p1, v10

    sget-object p1, Lnbisdk/ah;->ar:[D

    const/4 v12, 0x2

    aget-wide v12, p1, v12

    sget-object p1, Lnbisdk/ah;->ar:[D

    const/4 v14, 0x4

    aget-wide v14, p1, v14

    sget-object p1, Lnbisdk/ah;->ar:[D

    const/16 v16, 0x6

    aget-wide v16, p1, v16

    sget-object p1, Lnbisdk/ah;->ar:[D

    const/16 v18, 0x8

    aget-wide v18, p1, v18

    sget-object p1, Lnbisdk/ah;->ar:[D

    const/16 v20, 0xa

    aget-wide v20, p1, v20

    mul-double v20, v20, v8

    add-double v18, v18, v20

    mul-double v18, v18, v8

    add-double v16, v16, v18

    mul-double v16, v16, v8

    add-double v14, v14, v16

    mul-double/2addr v14, v8

    add-double/2addr v12, v14

    mul-double/2addr v12, v8

    add-double/2addr v10, v12

    mul-double/2addr v6, v10

    sget-object p1, Lnbisdk/ah;->ar:[D

    const/4 v10, 0x1

    aget-wide v10, p1, v10

    sget-object p1, Lnbisdk/ah;->ar:[D

    const/4 v12, 0x3

    aget-wide v12, p1, v12

    sget-object p1, Lnbisdk/ah;->ar:[D

    const/4 v14, 0x5

    aget-wide v14, p1, v14

    sget-object p1, Lnbisdk/ah;->ar:[D

    const/16 v16, 0x7

    aget-wide v16, p1, v16

    sget-object p1, Lnbisdk/ah;->ar:[D

    const/16 v18, 0x9

    aget-wide v18, p1, v18

    mul-double v18, v18, v8

    add-double v16, v16, v18

    mul-double v16, v16, v8

    add-double v14, v14, v16

    mul-double/2addr v14, v8

    add-double/2addr v12, v14

    mul-double/2addr v12, v8

    add-double/2addr v10, v12

    mul-double/2addr v8, v10

    if-gez p0, :cond_a

    add-double p0, v6, v8

    mul-double p0, p0, v4

    sub-double p0, v4, p0

    goto/16 :goto_0

    :cond_6
    invoke-static/range {p0 .. p1}, Ljava/lang/Math;->abs(D)D

    move-result-wide p0

    const-wide/32 v6, 0x3ff30000

    cmp-long v6, v4, v6

    if-gez v6, :cond_8

    const-wide/32 v6, 0x3fe60000

    cmp-long v4, v4, v6

    if-gez v4, :cond_7

    const/4 v4, 0x0

    const-wide/high16 v5, 0x4000

    mul-double v5, v5, p0

    const-wide/high16 v7, 0x3ff0

    sub-double/2addr v5, v7

    const-wide/high16 v7, 0x4000

    add-double p0, p0, v7

    div-double p0, v5, p0

    move/from16 v22, v4

    move-wide/from16 v4, p0

    move/from16 p0, v22

    goto/16 :goto_1

    :cond_7
    const/4 v4, 0x1

    const-wide/high16 v5, 0x3ff0

    sub-double v5, p0, v5

    const-wide/high16 v7, 0x3ff0

    add-double p0, p0, v7

    div-double p0, v5, p0

    move/from16 v22, v4

    move-wide/from16 v4, p0

    move/from16 p0, v22

    goto/16 :goto_1

    :cond_8
    const-wide/32 v6, 0x40038000

    cmp-long v4, v4, v6

    if-gez v4, :cond_9

    const/4 v4, 0x2

    const-wide/high16 v5, 0x3ff8

    sub-double v5, p0, v5

    const-wide/high16 v7, 0x3ff0

    const-wide/high16 v9, 0x3ff8

    mul-double p0, p0, v9

    add-double p0, p0, v7

    div-double p0, v5, p0

    move/from16 v22, v4

    move-wide/from16 v4, p0

    move/from16 p0, v22

    goto/16 :goto_1

    :cond_9
    const/4 v4, 0x3

    const-wide/high16 v5, -0x4010

    div-double p0, v5, p0

    move/from16 v22, v4

    move-wide/from16 v4, p0

    move/from16 p0, v22

    goto/16 :goto_1

    :cond_a
    sget-object p1, Lnbisdk/ah;->ap:[D

    aget-wide v10, p1, p0

    add-double/2addr v6, v8

    mul-double/2addr v6, v4

    sget-object p1, Lnbisdk/ah;->aq:[D

    aget-wide p0, p1, p0

    sub-double p0, v6, p0

    sub-double p0, p0, v4

    sub-double p0, v10, p0

    const-wide/16 v4, 0x0

    cmp-long v2, v2, v4

    if-gez v2, :cond_1

    move-wide/from16 v0, p0

    neg-double v0, v0

    move-wide/from16 p0, v0

    goto/16 :goto_0
.end method

.method public static b([BI)I
    .locals 4

    const/4 v0, 0x0

    add-int/lit8 v1, p1, 0x4

    move v2, v0

    move v0, p1

    :goto_0
    if-ge v0, v1, :cond_0

    shl-int/lit8 v2, v2, 0x8

    aget-byte v3, p0, v0

    and-int/lit16 v3, v3, 0xff

    or-int/2addr v2, v3

    add-int/lit8 v0, v0, 0x1

    goto :goto_0

    :cond_0
    return v2
.end method

.method private static b(D)J
    .locals 4

    invoke-static {p0, p1}, Ljava/lang/Double;->doubleToLongBits(D)J

    move-result-wide v0

    const-wide v2, 0xffffffffL

    and-long/2addr v0, v2

    return-wide v0
.end method

.method public static d(J)I
    .locals 9

    const-wide/16 v4, 0x0

    const/4 v2, 0x0

    cmp-long v0, p0, v4

    if-nez v0, :cond_1

    move v0, v2

    :cond_0
    return v0

    :cond_1
    const-wide/16 v0, 0x1

    move v6, v2

    move-wide v7, v0

    move-wide v1, v7

    move v0, v6

    :goto_0
    cmp-long v3, v1, p0

    if-gez v3, :cond_0

    cmp-long v3, v1, v4

    if-lez v3, :cond_0

    add-int/lit8 v0, v0, 0x1

    const/4 v3, 0x1

    shl-long/2addr v1, v3

    goto :goto_0
.end method

.method public static exp(D)D
    .locals 23

    const-wide/16 v2, 0x0

    const-wide/16 v4, 0x0

    const/4 v6, 0x0

    invoke-static/range {p0 .. p1}, Lnbisdk/ah;->a(D)J

    move-result-wide v7

    long-to-int v7, v7

    shr-int/lit8 v8, v7, 0x1f

    and-int/lit8 v8, v8, 0x1

    const v9, 0x7fffffff

    and-int/2addr v7, v9

    const v9, 0x40862e42

    if-lt v7, v9, :cond_4

    const/high16 v9, 0x7ff0

    if-lt v7, v9, :cond_2

    invoke-static/range {p0 .. p1}, Lnbisdk/ah;->b(D)J

    move-result-wide v2

    const v4, 0xfffff

    and-int/2addr v4, v7

    int-to-long v4, v4

    or-long/2addr v2, v4

    const-wide/16 v4, 0x0

    cmp-long v2, v2, v4

    if-eqz v2, :cond_1

    add-double p0, p0, p0

    :cond_0
    :goto_0
    return-wide p0

    :cond_1
    if-eqz v8, :cond_0

    const-wide/16 p0, 0x0

    goto :goto_0

    :cond_2
    const-wide v9, 0x40862e42fefa39efL

    cmpl-double v9, p0, v9

    if-lez v9, :cond_3

    const-wide/high16 p0, 0x7ff0

    goto :goto_0

    :cond_3
    const-wide v9, -0x3f78b6ef2ad2cfafL

    cmpg-double v9, p0, v9

    if-gez v9, :cond_4

    const-wide/16 p0, 0x0

    goto :goto_0

    :cond_4
    const v9, 0x3fd62e42

    if-le v7, v9, :cond_6

    const v2, 0x3ff0a2b2

    if-ge v7, v2, :cond_5

    sget-object v2, Lnbisdk/ah;->at:[D

    aget-wide v2, v2, v8

    sub-double p0, p0, v2

    sget-object v2, Lnbisdk/ah;->au:[D

    aget-wide v2, v2, v8

    const/4 v4, 0x1

    sub-int/2addr v4, v8

    sub-int/2addr v4, v8

    move/from16 v20, v4

    move-wide/from16 v4, p0

    move/from16 p0, v20

    :goto_1
    sub-double v6, v4, v2

    :goto_2
    mul-double v8, v6, v6

    const-wide v10, 0x3fc555555555553eL

    const-wide v12, -0x40993e93e941426dL

    const-wide v14, 0x3f11566aaf25de2cL

    const-wide v16, -0x414442be3a2d940fL

    const-wide v18, 0x3e66376972bea4d0L

    mul-double v18, v18, v8

    add-double v16, v16, v18

    mul-double v16, v16, v8

    add-double v14, v14, v16

    mul-double/2addr v14, v8

    add-double/2addr v12, v14

    mul-double/2addr v12, v8

    add-double/2addr v10, v12

    mul-double/2addr v8, v10

    sub-double v8, v6, v8

    if-nez p0, :cond_8

    const-wide/high16 p0, 0x3ff0

    mul-double v2, v6, v8

    const-wide/high16 v4, 0x4000

    sub-double v4, v8, v4

    div-double/2addr v2, v4

    sub-double/2addr v2, v6

    sub-double p0, p0, v2

    goto :goto_0

    :cond_5
    const-wide v2, 0x3ff71547652b82feL

    mul-double v2, v2, p0

    sget-object v4, Lnbisdk/ah;->as:[D

    aget-wide v4, v4, v8

    add-double/2addr v2, v4

    double-to-int v2, v2

    int-to-double v3, v2

    sget-object v5, Lnbisdk/ah;->at:[D

    const/4 v6, 0x0

    aget-wide v5, v5, v6

    mul-double/2addr v5, v3

    sub-double p0, p0, v5

    sget-object v5, Lnbisdk/ah;->au:[D

    const/4 v6, 0x0

    aget-wide v5, v5, v6

    mul-double/2addr v3, v5

    move/from16 v20, v2

    move-wide/from16 v21, v3

    move-wide/from16 v2, v21

    move-wide/from16 v4, p0

    move/from16 p0, v20

    goto :goto_1

    :cond_6
    const/high16 v8, 0x3e30

    if-ge v7, v8, :cond_7

    const-wide v7, 0x7e37e43c8800759cL

    add-double v7, v7, p0

    const-wide/high16 v9, 0x3ff0

    cmpl-double v7, v7, v9

    if-lez v7, :cond_a

    const-wide/high16 v2, 0x3ff0

    add-double p0, p0, v2

    goto/16 :goto_0

    :cond_7
    const/4 v6, 0x0

    move/from16 v20, v6

    move-wide/from16 v6, p0

    move/from16 p0, v20

    move-wide/from16 v21, v2

    move-wide v2, v4

    move-wide/from16 v4, v21

    goto/16 :goto_2

    :cond_8
    const-wide/high16 v10, 0x3ff0

    mul-double/2addr v6, v8

    const-wide/high16 v12, 0x4000

    sub-double v8, v12, v8

    div-double/2addr v6, v8

    sub-double/2addr v2, v6

    sub-double/2addr v2, v4

    sub-double v2, v10, v2

    const/16 p1, -0x3fd

    move/from16 v0, p0

    move/from16 v1, p1

    if-lt v0, v1, :cond_9

    invoke-static {v2, v3}, Lnbisdk/ah;->a(D)J

    move-result-wide v2

    move-wide v0, v2

    long-to-int v0, v0

    move/from16 p1, v0

    shl-int/lit8 p0, p0, 0x14

    add-int p0, p0, p1

    invoke-static/range {p0 .. p0}, Lnbisdk/ah;->z(I)D

    move-result-wide p0

    goto/16 :goto_0

    :cond_9
    invoke-static {v2, v3}, Lnbisdk/ah;->a(D)J

    move-result-wide v2

    move-wide v0, v2

    long-to-int v0, v0

    move/from16 p1, v0

    move/from16 v0, p0

    add-int/lit16 v0, v0, 0x3e8

    move/from16 p0, v0

    shl-int/lit8 p0, p0, 0x14

    add-int p0, p0, p1

    invoke-static/range {p0 .. p0}, Lnbisdk/ah;->z(I)D

    move-result-wide p0

    const-wide/high16 v2, 0x170

    mul-double p0, p0, v2

    goto/16 :goto_0

    :cond_a
    move/from16 v20, v6

    move-wide/from16 v6, p0

    move/from16 p0, v20

    move-wide/from16 v21, v2

    move-wide v2, v4

    move-wide/from16 v4, v21

    goto/16 :goto_2
.end method

.method public static log(D)D
    .locals 25

    invoke-static/range {p0 .. p1}, Lnbisdk/ah;->b(D)J

    move-result-wide v2

    invoke-static/range {p0 .. p1}, Lnbisdk/ah;->a(D)J

    move-result-wide v4

    long-to-int v4, v4

    const/4 v5, 0x0

    const/high16 v6, 0x10

    if-ge v4, v6, :cond_a

    const v6, 0x7fffffff

    and-int/2addr v6, v4

    int-to-long v6, v6

    or-long/2addr v2, v6

    const-wide/16 v6, 0x0

    cmp-long v2, v2, v6

    if-nez v2, :cond_0

    const-wide/high16 p0, -0x10

    :goto_0
    return-wide p0

    :cond_0
    if-gez v4, :cond_1

    sub-double p0, p0, p0

    const-wide/16 v2, 0x0

    div-double p0, p0, v2

    goto :goto_0

    :cond_1
    add-int/lit8 v2, v5, -0x36

    const-wide/high16 v3, 0x4350

    mul-double p0, p0, v3

    invoke-static/range {p0 .. p1}, Lnbisdk/ah;->a(D)J

    move-result-wide v3

    long-to-int v3, v3

    move/from16 v23, v2

    move/from16 v24, v3

    move-wide/from16 v2, p0

    move/from16 p0, v23

    move/from16 p1, v24

    :goto_1
    const/high16 v4, 0x7ff0

    move/from16 v0, p1

    move v1, v4

    if-lt v0, v1, :cond_2

    add-double p0, v2, v2

    goto :goto_0

    :cond_2
    shr-int/lit8 v2, p1, 0x14

    const/16 v3, 0x3ff

    sub-int/2addr v2, v3

    add-int p0, p0, v2

    const v2, 0xfffff

    and-int p1, p1, v2

    const v2, 0x95f64

    add-int v2, v2, p1

    const/high16 v3, 0x10

    and-int/2addr v2, v3

    const/high16 v3, 0x3ff0

    xor-int/2addr v3, v2

    or-int v3, v3, p1

    invoke-static {v3}, Lnbisdk/ah;->z(I)D

    move-result-wide v3

    shr-int/lit8 v2, v2, 0x14

    add-int p0, p0, v2

    const-wide/high16 v5, 0x3ff0

    sub-double v2, v3, v5

    const v4, 0xfffff

    add-int/lit8 v5, p1, 0x2

    and-int/2addr v4, v5

    const/4 v5, 0x3

    if-ge v4, v5, :cond_6

    const-wide/16 v4, 0x0

    cmpl-double p1, v2, v4

    if-nez p1, :cond_4

    if-nez p0, :cond_3

    const-wide/16 p0, 0x0

    goto :goto_0

    :cond_3
    move/from16 v0, p0

    int-to-double v0, v0

    move-wide/from16 p0, v0

    const-wide v2, 0x3fe62e42fee00000L

    mul-double v2, v2, p0

    const-wide v4, 0x3dea39ef35793c76L

    mul-double p0, p0, v4

    add-double p0, p0, v2

    goto :goto_0

    :cond_4
    mul-double v4, v2, v2

    const-wide/high16 v6, 0x3fe0

    const-wide v8, 0x3fd5555555555555L

    mul-double/2addr v8, v2

    sub-double/2addr v6, v8

    mul-double/2addr v4, v6

    if-nez p0, :cond_5

    sub-double p0, v2, v4

    goto/16 :goto_0

    :cond_5
    move/from16 v0, p0

    int-to-double v0, v0

    move-wide/from16 p0, v0

    const-wide v6, 0x3fe62e42fee00000L

    mul-double v6, v6, p0

    const-wide v8, 0x3dea39ef35793c76L

    mul-double p0, p0, v8

    sub-double p0, v4, p0

    sub-double p0, p0, v2

    sub-double p0, v6, p0

    goto/16 :goto_0

    :cond_6
    const-wide/high16 v4, 0x4000

    add-double/2addr v4, v2

    div-double v4, v2, v4

    move/from16 v0, p0

    int-to-double v0, v0

    move-wide v6, v0

    mul-double v8, v4, v4

    const v10, 0x6147a

    sub-int v10, p1, v10

    mul-double v11, v8, v8

    const v13, 0x6b851

    sub-int p1, v13, p1

    const-wide v13, 0x3fd999999997fa04L

    const-wide v15, 0x3fcc71c51d8e78afL

    const-wide v17, 0x3fc39a09d078c69fL

    mul-double v17, v17, v11

    add-double v15, v15, v17

    mul-double/2addr v15, v11

    add-double/2addr v13, v15

    mul-double/2addr v13, v11

    const-wide v15, 0x3fe5555555555593L

    const-wide v17, 0x3fd2492494229359L

    const-wide v19, 0x3fc7466496cb03deL

    const-wide v21, 0x3fc2f112df3e5244L

    mul-double v21, v21, v11

    add-double v19, v19, v21

    mul-double v19, v19, v11

    add-double v17, v17, v19

    mul-double v11, v11, v17

    add-double/2addr v11, v15

    mul-double/2addr v8, v11

    or-int p1, p1, v10

    add-double/2addr v8, v13

    if-lez p1, :cond_8

    const-wide/high16 v10, 0x3fe0

    mul-double/2addr v10, v2

    mul-double/2addr v10, v2

    if-nez p0, :cond_7

    add-double p0, v10, v8

    mul-double p0, p0, v4

    sub-double p0, v10, p0

    sub-double p0, v2, p0

    goto/16 :goto_0

    :cond_7
    const-wide p0, 0x3fe62e42fee00000L

    mul-double p0, p0, v6

    add-double/2addr v8, v10

    mul-double/2addr v4, v8

    const-wide v8, 0x3dea39ef35793c76L

    mul-double/2addr v6, v8

    add-double/2addr v4, v6

    sub-double v4, v10, v4

    sub-double v2, v4, v2

    sub-double p0, p0, v2

    goto/16 :goto_0

    :cond_8
    if-nez p0, :cond_9

    sub-double p0, v2, v8

    mul-double p0, p0, v4

    sub-double p0, v2, p0

    goto/16 :goto_0

    :cond_9
    const-wide p0, 0x3fe62e42fee00000L

    mul-double p0, p0, v6

    sub-double v8, v2, v8

    mul-double/2addr v4, v8

    const-wide v8, 0x3dea39ef35793c76L

    mul-double/2addr v6, v8

    sub-double/2addr v4, v6

    sub-double v2, v4, v2

    sub-double p0, p0, v2

    goto/16 :goto_0

    :cond_a
    move-wide/from16 v2, p0

    move/from16 p1, v4

    move/from16 p0, v5

    goto/16 :goto_1
.end method

.method public static sinh(D)D
    .locals 26

    invoke-static/range {p0 .. p1}, Lnbisdk/ah;->a(D)J

    move-result-wide v2

    long-to-int v2, v2

    const v3, 0x7fffffff

    and-int/2addr v3, v2

    const/high16 v4, 0x7ff0

    if-lt v3, v4, :cond_1

    add-double p0, p0, p0

    :cond_0
    :goto_0
    return-wide p0

    :cond_1
    const-wide/high16 v4, 0x3fe0

    if-gez v2, :cond_2

    const-wide/high16 v4, -0x4020

    :cond_2
    const/high16 v2, 0x4036

    if-ge v3, v2, :cond_16

    const/high16 v2, 0x3e30

    if-ge v3, v2, :cond_3

    const-wide v6, 0x7fac7b1f3cac7433L

    add-double v6, v6, p0

    const-wide/high16 v8, 0x3ff0

    cmpl-double v2, v6, v8

    if-gtz v2, :cond_0

    :cond_3
    invoke-static/range {p0 .. p1}, Ljava/lang/Math;->abs(D)D

    move-result-wide p0

    const-wide/16 v6, 0x0

    invoke-static/range {p0 .. p1}, Lnbisdk/ah;->a(D)J

    move-result-wide v8

    long-to-int v2, v8

    const/high16 v8, -0x8000

    and-int/2addr v8, v2

    const v9, 0x7fffffff

    and-int/2addr v2, v9

    const v9, 0x4043687a

    if-lt v2, v9, :cond_8

    const v9, 0x40862e42

    if-lt v2, v9, :cond_7

    const/high16 v9, 0x7ff0

    if-lt v2, v9, :cond_6

    invoke-static/range {p0 .. p1}, Lnbisdk/ah;->b(D)J

    move-result-wide v6

    const v9, 0xfffff

    and-int/2addr v2, v9

    int-to-long v9, v2

    or-long/2addr v6, v9

    const-wide/16 v9, 0x0

    cmp-long v2, v6, v9

    if-eqz v2, :cond_5

    add-double p0, p0, p0

    :cond_4
    :goto_1
    const/high16 v2, 0x3ff0

    if-ge v3, v2, :cond_15

    const-wide/high16 v2, 0x4000

    mul-double v2, v2, p0

    mul-double v6, p0, p0

    const-wide/high16 v8, 0x3ff0

    add-double p0, p0, v8

    div-double p0, v6, p0

    sub-double p0, v2, p0

    mul-double p0, p0, v4

    goto :goto_0

    :cond_5
    if-eqz v8, :cond_4

    const-wide/high16 p0, -0x4010

    goto :goto_1

    :cond_6
    const-wide v9, 0x40862e42fefa39efL

    cmpl-double v9, p0, v9

    if-lez v9, :cond_7

    const-wide/high16 p0, 0x7ff0

    goto :goto_1

    :cond_7
    if-eqz v8, :cond_8

    const-wide v9, 0x1a56e1fc2f8f359L

    add-double v9, v9, p0

    const-wide/16 v11, 0x0

    cmpg-double v9, v9, v11

    if-gez v9, :cond_8

    const-wide/high16 p0, -0x4010

    goto :goto_1

    :cond_8
    const v9, 0x3fd62e42

    if-le v2, v9, :cond_c

    const v6, 0x3ff0a2b2

    if-ge v2, v6, :cond_a

    if-nez v8, :cond_9

    const-wide v6, 0x3fe62e42fee00000L

    sub-double p0, p0, v6

    const-wide v6, 0x3dea39ef35793c76L

    const/4 v2, 0x1

    move-wide/from16 v24, v6

    move-wide/from16 v6, p0

    move-wide/from16 p0, v24

    :goto_2
    sub-double v8, v6, p0

    sub-double/2addr v6, v8

    sub-double p0, v6, p0

    move-wide v6, v8

    :goto_3
    const-wide/high16 v8, 0x3fe0

    mul-double/2addr v8, v6

    mul-double v10, v6, v8

    const-wide/high16 v12, 0x3ff0

    const-wide v14, -0x405eeeeeeeeeef0cL

    const-wide v16, 0x3f5a01a019fe5585L

    const-wide v18, -0x40eb31e661552449L

    const-wide v20, 0x3ed0cfca86e65239L

    const-wide v22, -0x4175024891f63cd3L

    mul-double v22, v22, v10

    add-double v20, v20, v22

    mul-double v20, v20, v10

    add-double v18, v18, v20

    mul-double v18, v18, v10

    add-double v16, v16, v18

    mul-double v16, v16, v10

    add-double v14, v14, v16

    mul-double/2addr v14, v10

    add-double/2addr v12, v14

    const-wide/high16 v14, 0x4008

    mul-double/2addr v8, v12

    sub-double v8, v14, v8

    sub-double/2addr v12, v8

    const-wide/high16 v14, 0x4018

    mul-double/2addr v8, v6

    sub-double v8, v14, v8

    div-double v8, v12, v8

    mul-double/2addr v8, v10

    if-nez v2, :cond_e

    mul-double p0, v6, v8

    sub-double p0, p0, v10

    sub-double p0, v6, p0

    goto/16 :goto_1

    :cond_9
    const-wide v6, 0x3fe62e42fee00000L

    add-double p0, p0, v6

    const-wide v6, -0x4215c610ca86c38aL

    const/4 v2, -0x1

    move-wide/from16 v24, v6

    move-wide/from16 v6, p0

    move-wide/from16 p0, v24

    goto :goto_2

    :cond_a
    const-wide v6, 0x3ff71547652b82feL

    mul-double v6, v6, p0

    if-nez v8, :cond_b

    const-wide/high16 v8, 0x3fe0

    :goto_4
    add-double/2addr v6, v8

    double-to-int v2, v6

    int-to-double v6, v2

    const-wide v8, 0x3fe62e42fee00000L

    mul-double/2addr v8, v6

    sub-double p0, p0, v8

    const-wide v8, 0x3dea39ef35793c76L

    mul-double/2addr v6, v8

    move-wide/from16 v24, v6

    move-wide/from16 v6, p0

    move-wide/from16 p0, v24

    goto/16 :goto_2

    :cond_b
    const-wide/high16 v8, -0x4020

    goto :goto_4

    :cond_c
    const/high16 v8, 0x3c90

    if-ge v2, v8, :cond_d

    const-wide v6, 0x7e37e43c8800759cL

    add-double v6, v6, p0

    sub-double/2addr v6, v6

    sub-double p0, p0, v6

    goto/16 :goto_1

    :cond_d
    const/4 v2, 0x0

    move-wide/from16 v24, v6

    move-wide/from16 v6, p0

    move-wide/from16 p0, v24

    goto/16 :goto_3

    :cond_e
    sub-double v8, v8, p0

    mul-double/2addr v8, v6

    sub-double p0, v8, p0

    sub-double p0, p0, v10

    const/4 v8, -0x1

    if-ne v2, v8, :cond_f

    const-wide/high16 v8, 0x3fe0

    sub-double p0, v6, p0

    mul-double p0, p0, v8

    const-wide/high16 v6, 0x3fe0

    sub-double p0, p0, v6

    goto/16 :goto_1

    :cond_f
    const/4 v8, 0x1

    if-ne v2, v8, :cond_11

    const-wide/high16 v8, -0x4030

    cmpg-double v2, v6, v8

    if-gez v2, :cond_10

    const-wide/high16 v8, -0x4000

    const-wide/high16 v10, 0x3fe0

    add-double/2addr v6, v10

    sub-double p0, p0, v6

    mul-double p0, p0, v8

    goto/16 :goto_1

    :cond_10
    const-wide/high16 v8, 0x3ff0

    const-wide/high16 v10, 0x4000

    sub-double p0, v6, p0

    mul-double p0, p0, v10

    add-double p0, p0, v8

    goto/16 :goto_1

    :cond_11
    const/4 v8, -0x2

    if-le v2, v8, :cond_12

    const/16 v8, 0x38

    if-le v2, v8, :cond_13

    :cond_12
    const-wide/high16 v8, 0x3ff0

    sub-double p0, p0, v6

    sub-double p0, v8, p0

    invoke-static/range {p0 .. p1}, Lnbisdk/ah;->a(D)J

    move-result-wide p0

    move-wide/from16 v0, p0

    long-to-int v0, v0

    move/from16 p0, v0

    shl-int/lit8 p1, v2, 0x14

    sub-int p0, p0, p1

    invoke-static/range {p0 .. p0}, Lnbisdk/ah;->z(I)D

    move-result-wide p0

    const-wide/high16 v6, 0x3ff0

    sub-double p0, p0, v6

    goto/16 :goto_1

    :cond_13
    const/16 v8, 0x14

    if-ge v2, v8, :cond_14

    const/high16 v8, 0x3ff0

    const/high16 v9, 0x20

    shr-int/2addr v9, v2

    sub-int/2addr v8, v9

    invoke-static {v8}, Lnbisdk/ah;->z(I)D

    move-result-wide v8

    sub-double p0, p0, v6

    sub-double p0, v8, p0

    invoke-static/range {p0 .. p1}, Lnbisdk/ah;->a(D)J

    move-result-wide p0

    move-wide/from16 v0, p0

    long-to-int v0, v0

    move/from16 p0, v0

    shl-int/lit8 p1, v2, 0x14

    add-int p0, p0, p1

    invoke-static/range {p0 .. p0}, Lnbisdk/ah;->z(I)D

    move-result-wide p0

    goto/16 :goto_1

    :cond_14
    const/16 v8, 0x3ff

    sub-int/2addr v8, v2

    shl-int/lit8 v8, v8, 0x14

    invoke-static {v8}, Lnbisdk/ah;->z(I)D

    move-result-wide v8

    add-double p0, p0, v8

    sub-double p0, v6, p0

    const-wide/high16 v6, 0x3ff0

    add-double p0, p0, v6

    invoke-static/range {p0 .. p1}, Lnbisdk/ah;->a(D)J

    move-result-wide p0

    move-wide/from16 v0, p0

    long-to-int v0, v0

    move/from16 p0, v0

    shl-int/lit8 p1, v2, 0x14

    add-int p0, p0, p1

    invoke-static/range {p0 .. p0}, Lnbisdk/ah;->z(I)D

    move-result-wide p0

    goto/16 :goto_1

    :cond_15
    const-wide/high16 v2, 0x3ff0

    add-double v2, v2, p0

    div-double v2, p0, v2

    add-double p0, p0, v2

    mul-double p0, p0, v4

    goto/16 :goto_0

    :cond_16
    const v2, 0x40862e42

    if-ge v3, v2, :cond_17

    invoke-static/range {p0 .. p1}, Ljava/lang/Math;->abs(D)D

    move-result-wide p0

    invoke-static/range {p0 .. p1}, Lnbisdk/ah;->exp(D)D

    move-result-wide p0

    mul-double p0, p0, v4

    goto/16 :goto_0

    :cond_17
    invoke-static/range {p0 .. p1}, Lnbisdk/ah;->b(D)J

    move-result-wide v6

    const v2, 0x408633ce

    if-lt v3, v2, :cond_18

    const v2, 0x408633ce

    if-ne v3, v2, :cond_19

    const-wide/32 v2, -0x70460783

    cmp-long v2, v6, v2

    if-gtz v2, :cond_19

    :cond_18
    const-wide/high16 v2, 0x3fe0

    invoke-static/range {p0 .. p1}, Ljava/lang/Math;->abs(D)D

    move-result-wide p0

    mul-double p0, p0, v2

    invoke-static/range {p0 .. p1}, Lnbisdk/ah;->exp(D)D

    move-result-wide p0

    mul-double v2, v4, p0

    mul-double p0, p0, v2

    goto/16 :goto_0

    :cond_19
    const-wide v2, 0x7fac7b1f3cac7433L

    mul-double p0, p0, v2

    goto/16 :goto_0
.end method

.method private static z(I)D
    .locals 5

    int-to-double v0, p0

    invoke-static {v0, v1}, Ljava/lang/Double;->doubleToLongBits(D)J

    move-result-wide v0

    const-wide v2, 0xffffffffL

    and-long/2addr v0, v2

    int-to-long v2, p0

    const/16 v4, 0x20

    shl-long/2addr v2, v4

    or-long/2addr v0, v2

    invoke-static {v0, v1}, Ljava/lang/Double;->longBitsToDouble(J)D

    move-result-wide v0

    return-wide v0
.end method
